<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Abs (infer.Biabduction.Abs)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">Biabduction</a> &#x00BB; Abs</nav><header class="odoc-preamble"><h1>Module <code><span>Biabduction.Abs</span></code></h1><p>Implementation of Abstraction Functions</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-abstract"><a href="#val-abstract" class="anchor"></a><code><span><span class="keyword">val</span> abstract : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></span></code></div><div class="spec-doc"><p>Abstract a proposition.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abstract_spec"><a href="#val-abstract_spec" class="anchor"></a><code><span><span class="keyword">val</span> abstract_spec : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../BiabductionSummary/index.html#type-spec">BiabductionSummary.spec</a></span> <span class="arrow">&#45;&gt;</span></span>
  <a href="../BiabductionSummary/NormSpec/index.html#type-t">BiabductionSummary.NormSpec.t</a></span></code></div><div class="spec-doc"><p>Normalizes names and applies simplifications, soem of which require looking at both pre and post.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abstract_junk"><a href="#val-abstract_junk" class="anchor"></a><code><span><span class="keyword">val</span> abstract_junk : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></span></code></div><div class="spec-doc"><p>Check whether the prop contains junk. If it does, and <code>Config.allowleak</code> is true, remove the junk, otherwise raise a Leak exception.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abstract_no_symop"><a href="#val-abstract_no_symop" class="anchor"></a><code><span><span class="keyword">val</span> abstract_no_symop : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></span></code></div><div class="spec-doc"><p>Abstract a proposition but don't pay a SymOp</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lifted_abstract"><a href="#val-lifted_abstract" class="anchor"></a><code><span><span class="keyword">val</span> lifted_abstract : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Propset/index.html#type-t">Propset.t</a> <span class="arrow">&#45;&gt;</span></span>
  <a href="../Propset/index.html#type-t">Propset.t</a></span></code></div><div class="spec-doc"><p>Abstract each proposition in <code>propset</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-remove_redundant_array_elements"><a href="#val-remove_redundant_array_elements" class="anchor"></a><code><span><span class="keyword">val</span> remove_redundant_array_elements : 
  <span><span><a href="../BiabductionSummary/index.html#type-t">BiabductionSummary.t</a> <a href="../../Absint/InterproceduralAnalysis/index.html#type-t">Absint.InterproceduralAnalysis.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span> <span class="arrow">&#45;&gt;</span></span>
  <span><a href="../Prop/index.html#type-normal">Prop.normal</a> <a href="../Prop/index.html#type-t">Prop.t</a></span></span></code></div><div class="spec-doc"><p>Remove redundant elements in an array, and check for junk afterwards</p></div></div></div></body></html>
